Notifications
Clear all

Trabalhar com valores dinâmicos

23 Posts
2 Usuários
0 Reactions
3,356 Visualizações
(@larocca)
Posts: 12
Active Member
Topic starter
 

Olá pessoal,

Seguinte: Tenho uma planilha que na coluna A, possui valores que são atualizados dinamicamente 1 vez ao dia. Hoje por exemplo, na lina A1, tenho o valor 10. Quando atualizar está planilha amanhã, o conteúdo de A1 será atualizado para o valor 20. Gostaria de saber se é possível colocar uma fórmula na célula B1 que me mostre a diferença entre o valor de ontem (10) e o valor de hoje (20)

Desde já obrigado.

 
Postado : 24/04/2012 6:54 pm
(@larocca)
Posts: 12
Active Member
Topic starter
 

Alexandre, tentei entender o código, nunca havia trabalhado com VBA, e por isso não consegui adaptar a fórmula.

No entanto, desconfio que meu problema reside no evento "Worksheet_Change". Pelo que li, esse comando dispara a execução do código quando a célula for alterada. Considerando que o conteúdo da célula seja um vínculo, o Worksheet_Change não vai executar o código, pois embora o valor mostrado na célula seja diferente, o vínculo continua igual, portanto, como se o conteúdo da célula não tivesse mudado.

Tentei o Worksheet_Calculated, mas não obtive resultado. Talvez tenha errado a sintaxe.

E achei um link interessante, que, se mesclado a sua solução, resolve totalmente meu problema:

http://www.exceler.org/index.php?option ... &Itemid=32

O código do link acima lê o valor inserido em A1 e consegue devolver em B1 a diferença do segundo valor inserido em A1. Em suma é o que preciso: Que o valor de B1 seja a subtração do valor de A1 ontem com o valor de A1 hoje.

Abraço!

 
Postado : 28/04/2012 7:26 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!!

Você pode usar de uma outra forma, um código para executar de tempo em tempo, isso ajudaria?
Exemplo avulso..

Fonte: http://www.ozgrid.com/Excel/run-macro-on-time.htm

Public dTime As Date
Dim lNum As Long

Sub RunOnTime()
    dTime = Now + TimeSerial(0, 0, 10)
    Application.OnTime dTime, "RunOnTime"
    
    lNum = lNum + 1
    If lNum = 3 Then
        Run "CancelOnTime"
    Else
        MsgBox lNum
    End If
    
End Sub

Sub CancelOnTime()
    Application.OnTime dTime, "RunOnTime", , False
End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 29/04/2012 5:27 am
(@larocca)
Posts: 12
Active Member
Topic starter
 

Achei esse código:

Public Sub Worksheet_Change(ByVal Target As Excel.Range)

Static valorcel As Single

Application.EnableEvents = False

If Target.Address = "$A$1" Then
valorcel = Target.Value + valorcel
If Target.Value = 0 Then valorcel = C1
Target.Value = valorcel
End If

Application.EnableEvents = True

End Sub

Alexandre, te peço essa última ajuda... Preciso que esse código que postei, seja aplicável a toda coluna A, e que o código seja disparado quando o valor da célula mudar, e não o vínculo que precisa estar contido nela.. Abraço!

 
Postado : 29/04/2012 2:54 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

boa noite!!

Com seu ultimo exemplo me deixou mais confuso.. :?
Não te basta...=Plan2!A1 e arrastar para a direita e depois para baixo?

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 29/04/2012 4:18 pm
(@larocca)
Posts: 12
Active Member
Topic starter
 

boa noite!!

Com seu ultimo exemplo me deixou mais confuso.. :?
Não te basta...=Plan2!A1 e arrastar para a direita e depois para baixo?

Att

Cara acabei misturando as coisas. A primeira ajuda que pedi foi para passar a soma de A1 para B1, C1 etc.. Essa solução me atende, porém pesquisando sobre meu problema vi que é possível calcular o valor anterior da célula com um novo valor inserido.

Na minha planilha, na coluna A eu tenho vínculos que mostram um valor x que vem de outra planilha.

Minha necessidade é que, quando o valor x seja atualizado, as células da coluna A mostrem a diferença entre o valor que estava antes de atualizar e depois de atualizar. E como esses valores são obtidos através de vínculos, o código precisa identificar essa mudança pra funcionar, e não funcionar após a digitação de outro valor..

 
Postado : 29/04/2012 5:50 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Vamos tentar assim, você me manda por Email, sua planilha e nela explique com mais detalhe.

Quando digo explicar com detalhe é....tenho o arquivo "nomeTal", e na planilha "Plan1" intervalo tal, depois planilha "Plan2" intervalo tal etc

'Alexandre'@'planilhando.com.br'

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 29/04/2012 6:31 pm
(@larocca)
Posts: 12
Active Member
Topic starter
 

Boa noite!!

Vamos tentar assim, você me manda por Email, sua planilha e nela explique com mais detalhe.

Quando digo explicar com detalhe é....tenho o arquivo "nomeTal", e na planilha "Plan1" intervalo tal, depois planilha "Plan2" intervalo tal etc

'Alexandre'@'planilhando.com.br'

Enviei no seu email!

Mais uma vez obrigado Alexandre!!

 
Postado : 29/04/2012 7:32 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

baixe o arquivo e veja se é isso...
http://www.sendspace.com/file/6fibzk

Se esforce para adaptar caso necessário!!

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 01/05/2012 1:27 pm
Página 2 / 2